package bjtu.clustering;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import org.ansj.app.summary.SummaryComputer;
import org.ansj.app.summary.pojo.Summary;
import org.ansj.domain.Result;
import org.ansj.splitWord.analysis.BaseAnalysis;
import org.ansj.splitWord.analysis.DicAnalysis;
import org.ansj.splitWord.analysis.NlpAnalysis;
import org.ansj.splitWord.analysis.ToAnalysis;
import org.fnlp.app.keyword.AbstractExtractor;
import org.fnlp.app.keyword.WordExtract;
import org.fnlp.nlp.cn.CNFactory;
import org.fnlp.nlp.cn.tag.CWSTagger;
import org.fnlp.nlp.corpus.StopWords;
import org.fnlp.util.exception.LoadModelException;

public class AnalysisTest {
	public static CNFactory factory;

	public static void main(String[] args) throws Exception {
		//Result parse =  ToAnalysis.parse("孙杨在里约奥运会男子200米自由泳决赛中，以1分44秒65夺得冠军");//精准分词
		Result parse = NlpAnalysis.parse("孙杨在里约奥运会男子200米自由泳决赛中，以1分44秒65夺得冠军");
		System.out.println(parse);
		
		String content = "新华社北京2月10日电 （记者隋笑飞）中共中央政治局常委、中央书记处书记刘云山2月8日和9日，代表习近平总书记和党中央看望文化界知名人士，向他们致以诚挚问候，向广大文化工作者致以新春祝福。刘云山首先来到中国人民大学教授、着名马克思主义哲学专家陈先达家中，关切询问陈先达的生活和工作情况，对他为党的思想理论建设作出的贡献给予肯定，陈先达就深化马克思主义理论研究、加强哲学社会科学教材教学工作提出建议。在中国文联荣誉委员、着名书法家沈鹏家中，刘云山悉心了解书法艺术传承发展情况，希望老一辈书法家继续发挥传帮带作用、为弘扬中华优秀传统文化贡献力量。在看望中国舞协名誉主席、着名芭蕾舞表演艺术家白淑湘时，刘云山赞赏她为芭蕾舞民族化进行的探索，白淑湘建议加强青年艺术人才培养、加大对代表国家水准的艺术门类扶持力度。在看望原新闻出版署署长、着名出版家宋木文时，刘云山与他就出版业现状和前景进行交流，认真听取他关于提高出版质量、加强版权保护、重视社会效益等建议。在中国作协名誉委员、着名少数民族作家玛拉沁夫家中，刘云山赞扬玛拉沁夫为民族文学发展做出的成绩，并与他就加强少数民族文艺创作、繁荣中华民族文艺园地进行探讨。文化界知名人士对习近平总书记和党中央的亲切关怀表示感谢，对党的十八大以来党治国理政的新举措新局面高度赞誉，对党和政府重视弘扬优秀传统文化、提升国家文化软实力等部署深表赞同，一致认为文化工作者赶上了好时代，文化发展展示出更加美好的前景。刘云山指出，国运兴、文运兴，文化是民族生存和发展的重要力量，实现中华民族伟大复兴的中国梦需要文化的繁荣兴盛。推进“四个全面”战略布局，赋予当代文化工作者重要责任和使命。希望广大文化工作者深入学习贯彻习近平总书记在文艺工作座谈会上的重要讲话精神，增强文化自信，坚守文化追求，树立正确创作导向，用更多更好的文化作品讲好中国故事、反映时代进步。要强化精品意识，学习老一辈文化工作者的优良传统，努力在扎根生活、扎根群众中丰富生活积淀，在深化艺术实践、积极探索创新中提高文艺表现力，为推动文化繁荣发展、建设社会主义文化强国作出积极贡献。各级党委、政府和有关部门要重视文化建设、关心文化人才，加强扶持引导、多办实事好事，为文化工作者施展才华创造良好条件。中共中央政治局委员、中宣部部长刘奇葆陪同看望。中宣部、教育部、文化部、新闻出版广电总局、中国文联、中国作协有关负责同志参加看望活动。《 人民日报 》（ 2015年02月11日 01 版）";
		String title = "国家统计局解读：一二线城市房价同比涨幅持续回落";
        SummaryComputer summaryComputer = new SummaryComputer(300, title, content);
        Summary summary = summaryComputer.toSummary();
        System.out.println("ansj提取关键词： " + summary.getKeyWords()); // 关键词
        System.out.println(summary.getSummary()); // 摘要
		try {
			// 创建中文处理工厂对象，并使用“models”目录下的模型文件初始化
			factory = CNFactory.getInstance("models");
			AnalysisTest at = new AnalysisTest();
			at.GetKeyword("", 10);
		} catch (LoadModelException e) {
			e.printStackTrace();
		}
	}
	
	//分词测试
	public void segment(){
	 	// 使用分词器对中文句子进行分词，得到分词结果
	 	String[] words = factory.seg("关注自然语言处理、语音识别、深度学习等方向的前沿技术和业界动态。");

	 	// 打印分词结果
	 	for(String word : words) {
	 		System.out.print(word + " ");
	 	}
	  	 System.out.println();
	}
	
	//标注测试
	public void tag(){
		// 使用标注器对中文句子进行标注，得到标注结果
	 	String result = factory.tag2String("关注自然语言处理、语音识别、深度学习等方向的前沿技术和业界动态。");

	 	// 显示标注结果
	 	System.out.println(result);
	}
	
	//实体识别测试
	public void entity(){
		// 使用标注器对包含实体名的句子进行标注，得到结果
	 	HashMap<String, String> result = factory.ner("詹姆斯·默多克和丽贝卡·布鲁克斯 鲁珀特·默多克旗下的美国小报《纽约邮报》的职员被公司律师告知，保存任何也许与电话窃听及贿赂有关的文件。");

	 	// 显示标注结果
	 	System.out.println(result);
	}
	
    public ArrayList<String> GetKeyword(String News,int keywordsNumber) throws Exception{  
    	News = "新华社北京2月10日电 （记者隋笑飞）中共中央政治局常委、中央书记处书记刘云山2月8日和9日，代表习近平总书记和党中央看望文化界知名人士，向他们致以诚挚问候，向广大文化工作者致以新春祝福。刘云山首先来到中国人民大学教授、着名马克思主义哲学专家陈先达家中，关切询问陈先达的生活和工作情况，对他为党的思想理论建设作出的贡献给予肯定，陈先达就深化马克思主义理论研究、加强哲学社会科学教材教学工作提出建议。在中国文联荣誉委员、着名书法家沈鹏家中，刘云山悉心了解书法艺术传承发展情况，希望老一辈书法家继续发挥传帮带作用、为弘扬中华优秀传统文化贡献力量。在看望中国舞协名誉主席、着名芭蕾舞表演艺术家白淑湘时，刘云山赞赏她为芭蕾舞民族化进行的探索，白淑湘建议加强青年艺术人才培养、加大对代表国家水准的艺术门类扶持力度。在看望原新闻出版署署长、着名出版家宋木文时，刘云山与他就出版业现状和前景进行交流，认真听取他关于提高出版质量、加强版权保护、重视社会效益等建议。在中国作协名誉委员、着名少数民族作家玛拉沁夫家中，刘云山赞扬玛拉沁夫为民族文学发展做出的成绩，并与他就加强少数民族文艺创作、繁荣中华民族文艺园地进行探讨。文化界知名人士对习近平总书记和党中央的亲切关怀表示感谢，对党的十八大以来党治国理政的新举措新局面高度赞誉，对党和政府重视弘扬优秀传统文化、提升国家文化软实力等部署深表赞同，一致认为文化工作者赶上了好时代，文化发展展示出更加美好的前景。刘云山指出，国运兴、文运兴，文化是民族生存和发展的重要力量，实现中华民族伟大复兴的中国梦需要文化的繁荣兴盛。推进“四个全面”战略布局，赋予当代文化工作者重要责任和使命。希望广大文化工作者深入学习贯彻习近平总书记在文艺工作座谈会上的重要讲话精神，增强文化自信，坚守文化追求，树立正确创作导向，用更多更好的文化作品讲好中国故事、反映时代进步。要强化精品意识，学习老一辈文化工作者的优良传统，努力在扎根生活、扎根群众中丰富生活积淀，在深化艺术实践、积极探索创新中提高文艺表现力，为推动文化繁荣发展、建设社会主义文化强国作出积极贡献。各级党委、政府和有关部门要重视文化建设、关心文化人才，加强扶持引导、多办实事好事，为文化工作者施展才华创造良好条件。中共中央政治局委员、中宣部部长刘奇葆陪同看望。中宣部、教育部、文化部、新闻出版广电总局、中国文联、中国作协有关负责同志参加看望活动。《 人民日报 》（ 2015年02月11日 01 版）";
     	ArrayList<String> keywords=new ArrayList<String>();  
     	StopWords sw= new StopWords("models/stopwords");  
     	CWSTagger seg = new CWSTagger("models/seg.m");
     	AbstractExtractor key = new WordExtract(seg,sw);  
	          
     	//you need to set the keywords number, here you will get 10 keywords  
     	Map<String,Integer> ans = key.extract(News, keywordsNumber);  
	    System.out.print("fudan提取关键词： ");      
     	for (Map.Entry<String, Integer> entry : ans.entrySet()) {  
     	 	String keymap = entry.getKey().toString();  
     	 	String value = entry.getValue().toString();  
     	 	keywords.add(keymap);  
     	 	System.out.println("key=" + keymap + " value=" + value);  
     	}  
     	return keywords;  
	}
	
	

}
